package cn.tpshion.vm.service;

import cn.tpshion.vm.domain.dto.task.*;
import cn.tpshion.vm.domain.entity.TaskHis;
import cn.tpshion.vm.domain.entity.TaskNamespace;
import cn.tpshion.vm.domain.entity.TaskTemplate;
import cn.tpshion.vm.domain.vo.TaskInfoVO;
import cn.tpshion.vm.domain.vo.TaskVO;
import com.mybatisflex.core.paginate.Page;
import java.util.List;

public interface TaskService {

    List<TaskNamespace> getTaskNamespaceList();

    TaskNamespace addNamespace(AddNamespaceDTO dto);

    void deleteNamespace(String id);

    Page<TaskVO> taskList(QueryTaskDTO dto);

    void addTask(AddTaskDTO dto);

    void deleteTask(DeleteTaskDTO dto);

    TaskInfoVO getTaskInfo(String id, Boolean edit);

    void saveFlowData(TaskInfoDTO dto);

    void runTask(String taskId);

    void stopTask(String taskId);

    Page<TaskHis> hisList(QueryHisDTO dto);

    List<String> hisLog(String taskId, Long batchId);

    List<String> branchList(String taskId);

    void updateTaskData(TaskInfoDTO dto);

    void saveTemplate(TaskTemplateDTO dto);

    void deleteTemplate(Long id);

    List<TaskTemplate> templateList();

}
